package com.wuf.mybatis.executor.statement;

import com.wuf.mybatis.session.ResultHandler;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

/**
 * @Author wuf
 * @Description 语句处理器
 * @PackageName wuf-mybatis
 * @Package com.wuf.mybatis.executor.statement
 * @Date 2024/4/28 11:18
 */
public interface StatementHandler {
    // 语句处理器是 SQL 执行器中依赖的部分，SQL 执行器封装事务、连接和检测环境等，而语句处理器则是准备语句、参数化传递、执行 SQL、封装结果的处理。

    /** 准备语句 */
    Statement prepare(Connection connection) throws SQLException;

    /** 参数化 */
    void parameterize(Statement statement) throws SQLException;

    /** 执行查询 */
    <E> List<E> query(Statement statement, ResultHandler resultHandler) throws SQLException;
}
